# list=[1,2,3,4,5,6,7,8,9,3,3]
# list1=[10,2,30,14,15,6,17,80,9]
#list[2]=30
# list[0:2]=[10,20,30]
# print(list)
# list.reverse() #反转
# print(list)
#print(list[::-1])
#list1.sort() #sort()只能实现升序（从小到大）
#print(list1[::-1]) #通过切片实现从大到小

# list1.sort(reverse=True) #通过reverse实现从大到小
# print(list1)

#list 列表查找 index 、count
#print(list.index(6))  #返回元素在list列表中的索引位置
#一般不建议使用 list.index(3,0,3) 方式
# print(list.index(3,0,3))
# print(list.index(3,4,8)) #指定范围如果数据不在范围内就会出问题

#count 查找列表中出现元素的次数，找不到返回0
#print(list.count(3))

#in 在范围内 、not in  不在范围内
# print(3 in list)

# print(30 not in list)

# if 3 in list:
#     print('ok')
# else:
#     print('no')

#循环遍历list  list=[1,2,3,4,5,6,7,8,9,3,3]
# for i in list:
#     print(i)

# i=0
# while i<len(list):
#     print(list[i])
#     i+=1

#嵌套列表获取
# lists=[[1,2,3],[4,5,6],7,8,9]
# print(lists[0])
# print(lists[0][1])
# print(lists[1])
# print(lists[2])

#----------------元组------------
# tuple1=(1,2,3,'abc',[1,2,3],(4,5,6))
# tuple2=1,2,3,4,5 #定义元组时不建议省略()
# print(type(tuple2))

#str---->tuple
# str='hello world'
# print(tuple(str))
#list--->tuple
# list1=[1,2,3,4]
# print(tuple(list1))
#tuple--->list
#tuple01=(1,2,3)
# print(list(tuple01))
#t=(1,2,3,4,5,6,7,8,3)
# print(t[0])
# print(len(t))
# print(t.index(5))
# print(t.count(3))
# print(t[:4])
# print(t[2:])
# print(t[::-1])
# print(t[:3:2])

t=(1,2,3,4,5,6,7,8)
# t1=(1,2,3,4,5,6,7,8,3)
# tt=t+t1
# print(tt)
# print(id(tt))
# print(id(t))
# print(id(t1))
#t[2]=30
#print(t[2])
# del t

#----------set-----------------set中不能存放list、set、dic类型
#set 中可以过滤重复的数据（去重功能）
#set中元素是无序的
# s={1,3.14,1,True,'abc','abc',(1,2,3),True}
# print(s)
# print(type(s))

#set()函数----list、str、tuple、rang
# list1=[1,1,2,3]
# print(set(list1)) #list--->set

# strs='hello'
# print(set(strs))

#add 添加数据（不能添加list、set、dic）
s={1,2,3}
# s.add('a')
# s.add(5)
# print(s)

#update 修改数据（不能使用set，可以使用list、dic）
s.update([4,5,6])
s.update((7,8,9))
#del s
#s.remove(4)
# print(s)
# s.pop() #从头部删除一个元素
# # print(s)

#修改set中数据，先remove然后再add
# s.remove(8)
# s.add(0)
# print(s)
#
# print(9 in s)
# print(8 not in s)
#
# for f in s:
#     print(f)

#-----------集合运算-------------------
# a={1,2,4,5,6,7}
# b={1,3,5,7,9,'abc'}
#print(a&b)  # & 交集运算，找出2个集合中重叠部分

#print(a|b) # | 并集运算，把2个集合进行合并并且去重

# a={1,2,4,5,6}
# b={1,2,3,5,6,7}
# print(a&b)
# print(a|b)
# print(a-b) #差集运算，找出第二集合中没有的元素
# print(b-a)

#---------------字典-------------key->value---------
#key 唯一标识，不能重复
# dict01={'name':'tom','sex':'男','age':18,'isopen':False}
# print(dict01)
# dict02={'name':'hello','name':'world',"age":18}
# print(dict02)

# dicts={}
# print(dicts)
# list01=['name1','name2']
# dic01=dicts.fromkeys(list01) #没有指定value，默认none
# print(dic01)
# dic02=dicts.fromkeys(list01,'张三') #进行初始化
# print(dic02)
# dic03=dicts.fromkeys(list01,{'张三','李四'})
# print(dic03)

#-----------dict()-----------
# keys=['name','sex','age']
# values=['张三','nan',19]
# dic03=dict(zip(keys,values)) #zip 函数封装key--value 列表数据
# print(dic03)

dict01={'name':'tom','Name':'join','sex':'男','age':18,'isopen':False}
# print(dict01)
# print(dict01['name']) #取值
# dict01['name']='cat' #根据key修改对应value值
# print(dict01.get('Name')) #取值，推荐使用
# print(dict01.get('name1')) #key不存在返回None
# print(dict01.get('name1','no value'))#第二参数表示，key不存在时返回值

# print(dict01.keys())
# print(dict01.values())
# print(dict01.items())

#遍历字典
# for k,v in dict01.items():
#     print(f'{k}-{v}')


lists=[{'name':'张','age':18},{'name':'张','age':18}]
#del dict01 #删除整个字典数据
# del dict01['name'] #通过指定key进行删除
#print(dict01)
# dict01.clear() #清空字典中数据
# print(dict01)

#-------------range(start,end,step)----- start 默认0，step 默认1---
# print(list(range(10)))
# # # print(list(range(0,10)))   #end 不包含当前数值
# # # print(list(range(1,11)))
# # # print(list(range(1,11,2))) #设置步长为2
# # # print(list(range(-10,-1)))
# # # print(list(range(0,-10,-1)))

r=range(0,20,2)
# print(list(r))
# print(r[1]) #取数据
# print(r.index(6))#index下标位置
# print(r[-1])

# print(list(r[:2]))
# print(list(r[2:]))
# print(list(r[2:5]))
# print(list(r[::-1]))

# age=input('年龄:')
# print(type(age))
#int(input('性别'))
# isAll=input('是否合格:')
# print(type(isAll))
# print(chr(65)) #整数---字符
# print(chr(97))
# print(hex(255))#转换十六进制
# print(oct(100)) #转换八进制
# print(bin(10))#转换二进制
# print(10/4)
# print(10/2)
# print(10/3) # 除法，有小数
# print(10//3) # // 整除，没有小数
# print(10%2)
# print(10%6)
# print(2**3) #2^3  二的三次方

# print(2>3 and 4<5)
# print(2>3 or 4<5)
# print(not 2>3 or 4>5)
# print(not (2>3 and 4<5))


print(10<<3)
print(10>>3)
print(10&3)
print(10|3)